package com.f.manage.数组;

public class base {

    public static void main(String [] args){
//        数据类型 数组名 [ ][ ] = new 数据类型[m][n]
//        数据类型 [ ][ ]  数组名 = new 数据类型[m][n]
//        数据类型 [ ]   数组名 [ ] = new 数据类型[m][n]
//
//        举例：int [ ][ ]  arr=new  int [5][3];  也可以理解为“5行3例”
        int [ ][ ]  arr={{22,15,32,20,18},{12,21,25,19,33},{14,58,34,24,66},};
        int [][] arr2 = new int[][]{{4,5,6,8},{2,3},{1,6,9}};

//        其中byte、short、int、long都是表示整数的，只不过他们的取值范围不一样
//
//        byte的取值范围为-128~127，占用1个字节(-2的7次方到2的7次方-1)
//
//        short的取值范围为-32768~32767，占用2个字节(-2的15次方到2的15次方-1)
//
//        int的取值范围为(-2147483648~2147483647)，占用4个字节(-2的31次方到2的31次方-1)
//
//        long的取值范围为(-9223372036854774808~9223372036854774807)，占用8个字节(-2的63次方到2的63次方-1)

//        boolean t = true;取值为1
//
//        boolean f = false;曲子为0
//字符的存储范围在\u0000~\uFFFF，在定义字符型的数据时候要注意加’ ‘，比如 ‘1’表示字符’1’而不是数值1，
//
//char c = ’ 1 ‘;
//        char的取值范围是0~65535
//        如果是整数类型，那么默认值为0；
//        如果是浮点类型，那么默认值为0.0；
//        如果是字符类型，那么默认值为’\u0000’；这里的\ （万国表）， ，是一个不可见字符，并不是空格，打印看不见它。
//        如果是布尔类型，那么默认值默认为false；
//        如果是引用类型，那么默认值默认为null；null为空常量
//        类型	Value
//        boolean	false
//        int	0
//byte	(byte)0
//        char	‘ \u0000′
//short	(short)0
//        int	0
//        long	0L
//        float	0.0f
//        double	0.0d
//
//        public–都可访问
//        protected–包内和子类可访问
//        不写(default)–包内可访问

//        3、输入一棵二叉树，判断该二叉树是否是平衡二叉树。
//
//        public static boolean IsBalanced_Solution(TreeNode root) {
//
//            if(root == null){
//
//                return true;
//
//            }
//
//            int left = iterTree(root.left);
//
//            int right = iterTree(root.right);
//
//            if(Math.abs(left-right) > 1){
//
//                return false;
//
//            }
//
//            return true;
//
//        }
//
//        private static int iterTree(TreeNode root) {
//
//            if(root == null){
//
//                return 0;
//
//            }
//
//            int left = iterTree(root.left);
//
//            int right = iterTree(root.right);
//
//            return left > right ? (left+1) : (right+1);
//
//        }
//
//        1、请说明类和对象的区别
//
//        类是对象的抽象，对象是类的实例
//
//        2、请说明Overload和Override的区别，Overloaded的方法是否可以改变返回值的类型?
//
//                重载发生在一个类中，在编译期绑定，方法名相同而参数列表不同；
//
//        重写发生在父子类中，在运行期绑定，方法名相同，参数列表相同，方法体不同，主要遵循一大二小三相等:
//
//        访问修饰符要大于或等于父类，
//
//        返回类型如果是基本数据类型的话，要与父类相同，如果是引用类型的话，小于过等于父类；
//
//        抛出异常要比父类小或等于。
//
//        3、输入一个整数，输出该数二进制表示中1的个数。其中负数用补码表示。
//
//        https://blog.csdn.net/qq_33575542/article/details/81054108
//
//&是二进制“与”运算，参加运算的两个数的二进制按位进行运算，运算的规律是：
//
//        0 & 0=0
//
//        0 & 1=0
//
//        1 & 0=0
//
//        1 & 1=1
//
//        对于参加运算的数要换算为二进制进行运算，例如3 & 2的结果是2，过程如下：
//
//        3 & 2
//
//                =0111 & 0010
//
//                =0010
//
//                =2
//
//        思路：
//
//        把一个整数和它减去1的结果做位与运算，相当于把它最右边的1变成0。
//
//        所以，这种方法，只要这个整数有几个1，就做几次这样的操作。
//
//        private static int NumberOf1(int n){
//
//            int count = 0;
//
//            while(n!=0){
//
//                count++;
//
//                n = n&(n-1);
//
//            }
//
//            return count;
//
//        }





    }
}
